<?php
require_once("XmlControls.php");

class XmlConclusione extends XmlControls{
	
	static $instance;
	
	private function __construct() {
		
	}

	static function getInstance(){
		
		if(self::$instance == NULL){
			
			self::$instance = new XmlConclusione();
		}
		
		return self::$instance;
	}

	final public function GetData($conn,$cig,$num_progr,$num_progr_scheda) {
  //SOVRASCRIVO IL NUM_PROGR_SCHEDA PER ASSOCIARE CORRETTAMENTE I MSG DI ERRORE
  $_SESSION['XML__NUM_PROGR_SCHEDA']=$num_progr_scheda;
  
		$query = "SELECT ID, CIG, CAUSA_INTERRUZIONE_ID, MOTIVAZIONE_RISOLUZIONE_ID, DATA_RISOLUZIONE, ONERI_RISOLUZIONE_ID, IMPORTO_ONERI, 
							POLIZZA_RISOLUZIONE, DATA_ULTIMAZIONE_RISOLUZIONE, INFORTUNI, INFORTUNI_PERMANENTI, INFORTUNI_MORTALI, SCHEDA_CHIUSA, 
							UTENTE_ID, DATA_CHIUSURA, NUM_PROGR, DATA_SCADENZA_INVIO, NUM_PROGR_SCHEDA,ID_SIMOG ,GIORNI_PROROGA
							FROM CONCLUSIONE WHERE CIG='".$cig."' AND SCHEDA_CHIUSA IN ('S') AND ARCHIVIATA !='S' AND NUM_PROGR='".$num_progr."'";

		/*
DATA_ULTIMAZIONE_RISOLUZIONE
DATA_SCADENZA_INVIO
*/
		if ($num_progr_scheda!=""){
			$query.=" AND NUM_PROGR_SCHEDA='".$num_progr_scheda."'";
		}
		
		$rs=$conn->doquery_oracle_import($query, "select");
		
		
  $query_FI="SELECT TERMINE_ULTIMAZIONE, DATA_CONSEGNA_DEFINITIVA  ".
        "FROM fase_iniziale ".
        "WHERE CIG='".$cig."' AND SCHEDA_CHIUSA IN ('S','I') AND NUM_PROGR='".$num_progr."'".
        "AND NUM_PROGR_SCHEDA IN (SELECT MAX(NUM_PROGR_SCHEDA) FROM fase_iniziale WHERE cig='".$cig."')";  
  $rs_FI=$conn->doquery_oracle_import($query_FI, "select");
  /* 
  $query_AV="SELECT  PROROGA ".
        "FROM avanzamento ".
        "WHERE cig='".$cig."' AND NUM_PROGR='".$num_progr."' ".
        "AND NUM_PROGR_SCHEDA IN (SELECT MAX(NUM_PROGR_SCHEDA) FROM avanzamento WHERE cig='".$cig."')";  
  
  $rs_AV=$conn->doquery_oracle_import($query_AV, "select");
  */
        
		$rs_data=array();
		foreach($rs as $data){
			
			$rs_data["ID"]=$data["1"];
			$rs_data["CIG"]=$data["2"];
			$rs_data["CAUSA_INTERRUZIONE_ID"]=$data["3"];
			$rs_data["MOTIVAZIONE_RISOLUZIONE_ID"]=$data["4"];
			$rs_data["DATA_RISOLUZIONE"]=$data["5"];
			$rs_data["ONERI_RISOLUZIONE_ID"]=$data["6"];
			$rs_data["IMPORTO_ONERI"]=$data["7"];
			$rs_data["POLIZZA_RISOLUZIONE"]=$data["8"];
			$rs_data["DATA_ULTIMAZIONE_RISOLUZIONE"]=$data["9"];
			$rs_data["INFORTUNI"]=$data["10"];
			$rs_data["INFORTUNI_PERMANENTI"]=$data["11"];
			$rs_data["INFORTUNI_MORTALI"]=$data["12"];
			$rs_data["SCHEDA_CHIUSA"]=$data["13"];
			$rs_data["UTENTE_ID"]=$data["14"];
			$rs_data["DATA_CHIUSURA"]=$data["15"];
			$rs_data["NUM_PROGR"]=$data["16"];
			$rs_data["DATA_SCADENZA_INVIO"]=$data["17"];
			$rs_data["NUM_PROGR_SCHEDA"]=$data["18"];
			$rs_data["ID_SIMOG"]=$data["19"];
			$rs_data["PROROGA"]=$data["20"];
		}
		
		$rs_data["TERMINE_ULTIMAZIONE"]=$rs_FI[1][1];
		$rs_data["DATA_CONSEGNA_DEFINITIVA"]=$rs_FI[1][2];
		
		return $rs_data;		
		
	}
	
	final public function CreateXml($rs,$conn) 
	{
				
		
		/*echo "<pre>";
		print_r($rs);
		echo "</pre>";
		exit;*/
		
		
		$xml='<DatiConclusione';
		$rs_data[1]=$rs["data"];
		
		foreach($rs_data as $record){

			$ID_MOTIVO_INTERR=$this->WorkMotivoInterruzioneType("ID_MOTIVO_INTERR",$record["CAUSA_INTERRUZIONE_ID"],$conn);	 	//presenza A - V
			$ID_MOTIVO_RISOL=$this->WorkMotivoRisoluzioneType("ID_MOTIVO_RISOL",$record["MOTIVAZIONE_RISOLUZIONE_ID"],$conn);	//presenza A - V
			$DATA_RISOLUZIONE=$this->WorkData("DATA_RISOLUZIONE",$record["DATA_RISOLUZIONE"]);	  				//presenza A - V
			$FLAG_ONERI=$this->WorkFlagOneriType("FLAG_ONERI",$record["ONERI_RISOLUZIONE_ID"],$conn);			//presenza A - V
			$ONERI_RISOLUZIONE=$this->WorkImporto("ONERI_RISOLUZIONE",$record["IMPORTO_ONERI"]);					//presenza A - V
			$FLAG_POLIZZA=$this->WorkSN("POLIZZA",$record["POLIZZA_RISOLUZIONE"]);										//OPTIONAL
			$DATA_ULTIMAZIONE=$this->WorkData("DATA_ULTIMAZIONE",$record["DATA_ULTIMAZIONE_RISOLUZIONE"]);//presenza A - V
			$NUM_INFORTUNI=$this->WorkIntero5("NUM_INFORTUNI",$record["INFORTUNI"],"Y");									//presenza A* - V*
			$NUM_INF_PERM=$this->WorkIntero5("NUM_INF_PERM",$record["INFORTUNI_PERMANENTI"],"Y");					//presenza A* - V*
			$NUM_INF_MORT=$this->WorkIntero5("NUM_INF_MORT",$record["INFORTUNI_MORTALI"],"Y");						//presenza A* - V*
			$ID_SCHEDA_LOCALE=$this->WorkNumero("ID_SCHEDA_LOCALE",$record["ID"]);												//presenza A - V
			$ID_SCHEDA_SIMOG=$this->WorkNumero("ID_SCHEDA_SIMOG",$record["ID_SIMOG"]); 
			
			//$TERMINE_CONTRATT_ULTIMAZIONE=$this->WorkData("TERMINE_CONTRATT_ULTIMAZIONE",$record["TERMINE_ULTIMAZIONE"]);//presenza A - V
			//$DATA_VERB_CONSEGNA_AVVIO=$this->WorkData("DATA_VERB_CONSEGNA_AVVIO",$record["DATA_CONSEGNA_DEFINITIVA"]);//presenza A - V
			//$NUM_GIORNI_PROROGA=$this->WorkNumero("NUM_GIORNI_PROROGA",$record["PROROGA"]);//presenza A - V
				
			
			$xml.=' tns:FLAG_POLIZZA="'.$FLAG_POLIZZA.'" tns:NUM_INFORTUNI="'.$NUM_INFORTUNI.'" tns:NUM_INF_PERM="'.$NUM_INF_PERM.'" tns:NUM_INF_MORT="'.$NUM_INF_MORT.'"';

			if($ID_MOTIVO_INTERR!=''){
				$xml.=' tns:ID_MOTIVO_INTERR="'.$ID_MOTIVO_INTERR.'"';
			}
			if($ID_MOTIVO_RISOL!=''){
				$xml.=' tns:ID_MOTIVO_RISOL="'.$ID_MOTIVO_RISOL.'"';
			}
			if($DATA_RISOLUZIONE!=''){
				$xml.=' tns:DATA_RISOLUZIONE="'.$DATA_RISOLUZIONE.'"';
			}
			if($FLAG_ONERI!=''){
				$xml.=' tns:FLAG_ONERI="'.$FLAG_ONERI.'"';
			}
			if($ONERI_RISOLUZIONE!=''){
				$xml.=' tns:ONERI_RISOLUZIONE="'.$ONERI_RISOLUZIONE.'"';
			}
			if($DATA_ULTIMAZIONE!=''){
				$xml.=' tns:DATA_ULTIMAZIONE="'.$DATA_ULTIMAZIONE.'"';
			}	
			

			$TERMINE_CONTRATT_ULTIMAZIONE=$this->WorkData("TERMINE_CONTRATT_ULTIMAZIONE",$record["TERMINE_ULTIMAZIONE"]);//presenza A - V
			$DATA_VERB_CONSEGNA_AVVIO=$this->WorkData("DATA_VERB_CONSEGNA_AVVIO",$record["DATA_CONSEGNA_DEFINITIVA"]);//presenza A - V
			$NUM_GIORNI_PROROGA=$this->WorkNumero("NUM_GIORNI_PROROGA",$record["PROROGA"]);//presenza A - V
					
		    
		    if($TERMINE_CONTRATT_ULTIMAZIONE!=''){
				$xml.=' tns:TERMINE_CONTRATT_ULTIMAZIONE="'.$TERMINE_CONTRATT_ULTIMAZIONE.'"';
			}
			 
			if($DATA_VERB_CONSEGNA_AVVIO!=''){
				$xml.=' tns:DATA_VERB_CONSEGNA_AVVIO="'.$DATA_VERB_CONSEGNA_AVVIO.'"';
			}
			
			if($NUM_GIORNI_PROROGA!=''){
				$xml.=' tns:NUM_GIORNI_PROROGA="'.$NUM_GIORNI_PROROGA.'"';
			}
  
		
			/*if ($ID_SCHEDA_LOCALE!=''){
				$xml.=' tns:ID_SCHEDA_LOCALE="'.$ID_SCHEDA_LOCALE.'"';
			}														
			if ($ID_SCHEDA_SIMOG!=''){
				$xml.=' tns:ID_SCHEDA_SIMOG="'.$ID_SCHEDA_SIMOG.'"';
			}*/
			/*if ($ID_SCHEDA_SIMOG!='')
			{
				$xml.=' tns:ID_SCHEDA_SIMOG="'.$ID_SCHEDA_SIMOG.'"';
			}
			else
			{		  
			   $query_data_DC ="SELECT  ID_SIMOG FROM DATI_COMUNI WHERE CIG='".$record["CIG"]."' AND NUM_PROGR='".$record["NUM_PROGR"]."'";
               $rsDC=$conn->doquery_oracle_import($query_data_DC, "select");
			  if($rsDC[1][1]=="")
			  {
                if ($ID_SCHEDA_LOCALE!='')
                {
			      $xml.=' tns:ID_SCHEDA_LOCALE="'.$ID_SCHEDA_LOCALE.'"';
			    }
		      }
		    }*/
		    $xml.=' tns:ID_SCHEDA_LOCALE="'.$ID_SCHEDA_LOCALE.'"';									
		}

		$xml.='/>';
		 
		return $xml;

	}

}
?>